<body>
You should see 9 OKs below (and not hang): <br>
<script>
if (window.testRunner)
    testRunner.dumpAsText();
var body = document.body;
var selection = window.getSelection();

function shouldThrowIndexSizeErrorException(script)
{
    try {
        eval(script);
    } catch (e) {
        document.write(((e.code == DOMException.INDEX_SIZE_ERR) ? "OK" : "FAIL") + "<br>");
    }
}

shouldThrowIndexSizeErrorException("selection.collapse(body, -1);");
shouldThrowIndexSizeErrorException("selection.setBaseAndExtent(body, -1, body, 0);");
shouldThrowIndexSizeErrorException("selection.setBaseAndExtent(body, 0, body, -1);");
shouldThrowIndexSizeErrorException("selection.collapse(body, -1);");
shouldThrowIndexSizeErrorException("selection.getRangeAt(-1);");
shouldThrowIndexSizeErrorException("selection.getRangeAt(10000);");
shouldThrowIndexSizeErrorException("selection.collapse(body, 10000);");
shouldThrowIndexSizeErrorException("selection.setBaseAndExtent(body, 1000, body, 0)");
shouldThrowIndexSizeErrorException("selection.setBaseAndExtent(body, 0, body, 10000)");
</script>
